1. Field of the Invention
The present invention relates to a position controller of a feed shaft (table) in a machine tool or the like.
2. Description of the Related Art
For full-close control systems in which a linear scale is attached to a movable portion of a machine tool, numerous attempts have been made to reduce positioning error during a transient response. It is possible to reduce positional error during transient response by setting high gains for a speed loop and a position loop. With such a setting, it is possible to very precisely control a table in response to an unexpected load changing disturbances, such as a change in a sliding resistance of the movable portion or in a cutting load.
FIG. 8 is a block diagram showing a typical full-close control. A difference between a position detection value Pl of a table 11 detected by a linear scale 10 and used as a position feedback value and a position instruction Pc is calculated. A speed instruction calculator unit 2 multiplies the difference by a proportional gain Kp and outputs a speed instruction Vc. A differentiator 13 differentiates a position detection value Pm of a position detector 8 mounted on a motor 9 and outputs a speed detection value Vm of the motor. A subtractor 3 calculates a difference between the speed instruction Vc and the speed detection value Vm of the motor and outputs the difference as a speed difference. Based on the speed difference, a speed loop proportional gain Pv, and a speed loop integration gain Iv, a speed difference proportion calculator 4 and a speed difference integration calculator 5 respectively output a proportional component of the speed difference and an integral component of the speed difference. An adder 6 adds the proportional component of the speed difference and the integral component of the speed difference and outputs a torque instruction Tc. Reference numeral 7 in FIG. 8 indicates various filter units for filtering the torque instruction and current controller units. In typical semi-close control, a motor position detection value Pm is used as a position feedback value in place of the position detection value Pl of the table detected by a linear scale 10.
With the development of various filtering techniques and vibration suppression controls and an increase in the speed of the speed loop achieved in recent years, it is now possible to set a high speed loop gain in the speed loop. However, in a full-close control in, for example, a large-scale machine tool with relatively low rigidity, lost motion due to, for example, backlash and flexure in a feed shaft mechanism such as a ball screw coupled to the motor prohibit the setting of a high position loop gain. As such, problems exist such as that the position cannot be highly precisely controlled during a transient response. Related art techniques directed to these problems will next be described.
Japanese Patent Laid-Open Publication No. Hei 3-32550 (hereinafter simply referred to as “the '550 publication”) discloses a technique in which a composite speed of a speed of a motor and a speed of a table is calculated and a speed control is applied using the composite speed as a speed detection value. FIG. 6 is a control block diagram showing a control in the '550 publication. A positional difference calculator unit 1 of FIG. 6 calculates a difference between a position instruction Pc and a position detection value Pl of a table detected by a linear scale 10. A speed instruction calculator unit 2 multiplies the difference by a proportional gain Kp and outputs a speed instruction Vc. A differentiator 13 calculates a speed detection value Vm of a motor from a position detection value Pm of the motor detected by a position detector 8 mounted on the motor 9. A differentiator 14 calculates a speed detection value Vl of a table 11 from a position detection value Pl detected by the linear scale 10. A speed calculator unit 15 outputs a speed represented by the following equation (1) as a speed feedback value Vd.Vd=Vm+(Vl−Vm)·(1/(1+TS))  (Equation 1)
In equation (1), T represents a time constant and S represents differentiation. In addition, (1/(1+TS)) in equation (1) represents a first order delay circuit.
A speed difference calculator unit 3 calculates a speed difference between a speed feedback value Vd represented by equation (1) and the speed instruction Vc. A speed difference proportion calculator unit 4 calculates a proportional component of the speed difference using a proportional gain Pv on the speed difference. A speed difference integration calculator unit 5 calculates an integral component of the speed difference using an integration gain Iv on the speed difference. An adder 6 adds the outputs of the speed difference proportion calculator unit 4 and the speed difference integration calculator unit 5 to calculate a torque instruction Tc. In the structure shown in FIG. 6, the torque instruction Tc can be represented by the following equation (2).Tc=[Kp·(Pc−Pl)−Vm−(Vl−Vm)·(1/(1+TS))]·(Pv+Iv/S)  (Equation (2))
In the related art of the '550 publication shown in FIG. 6, when a small value is set for the time constant, the positional difference Pdif during transient response is reduced. However, because a vibration component during normal operation is increased, the position loop gain Kp cannot be set at a high value. When a large value is set for the time constant T, on the other hand, although the normal operation is stabilized, the positional difference Pdif during transient response is increased.
Problems which occur in a circular movement with a diameter of approximately 100 μm and a feed rate of 5 m/min. will now be described. FIG. 9 shows a speed instruction Vc and a positional difference Pdif in a circular movement. In a typical position control shown in FIG. 8, when the position loop gain Kp, the speed loop proportion gain Pv, and the speed loop integral gain Iv are set at sufficiently large values, the positional difference Pdif becomes a large positional difference only when the speed instruction is inverted as shown in Pdif(a) of FIG. 9. The positional difference Pdif when suitable time constants and gains are set corresponding to the characteristics of the device in the related art of FIG. 6 is shown in Pdif(b) of FIG. 9. As can be seen, the positional difference Pdif(b) when the speed instruction Vc is inverted is smaller than the positional difference Pdif(a) in FIG. 8. However, stationary differences d(a) and d(b) occurred which did not occur in FIG. 8.
Japanese Patent Laid-Open Publication No. Hei 3-110607 (hereinafter simply referred to as “the '607” publication) discloses a technique for correcting a torque instruction according to a value proportional to a difference between a speed of a motor and a speed of a table. FIG. 7 is a control block diagram showing the related art of the '607 publication. Elements identical to those in FIG. 6 are assigned the same reference numerals and will not be described again. A speed calculator unit 16 of FIG. 7 calculates and outputs a speed feedback value Vd represented by the following equation (3).Vd=k·Vl+(1−k)·Vm(0≦k≦1)  (Equation (3))
A subtractor 31 calculates a speed difference between the speed instruction Vc and the speed feedback value Vd represented by equation (3) and a speed difference proportion calculator unit 4 outputs a proportional component of the speed difference using a proportional gain Pv on the speed difference. A subtractor 32 calculates a speed difference between the speed instruction Vc and a speed detection value Vm of the motor (=SPm) and a speed difference integration calculator unit 5 outputs an integral component of the speed difference using an integral gain Iv on the speed difference. An adder 6 adds the proportional component of the speed difference and the integral component of the speed difference to calculate a torque instruction Tc. In FIG. 7, the torque instruction Tc can be represented by the following equation (4).                                                         Tc              =                            ⁢                                                [                                                            Kp                      ·                                              (                                                  Pc                          -                          Pl                                                )                                                              -                                          {                                                                        k                          ·                          sPl                                                +                                                                              (                                                          1                              -                              k                                                        )                                                    ·                          sPm                                                                    }                                                        ]                                ·                                                                                                      ⁢                              Pv                +                                                      [                                                                  Kp                        ·                                                  (                                                      Pc                            -                            Pl                                                    )                                                                    -                      sPm                                        ]                                    ·                                      Iv                    /                    S                                                                                                                          =                            ⁢                              [                                                      Kp                    ·                                          (                                              Pc                        -                        Pl                                            )                                                        -                                      {                                                                  k                        ·                        Vl                                            +                                                                        (                                                      1                            -                            k                                                    )                                                ·                        Vm                                                              }                                                  ]                                                                                                      ⁢                              Pv                +                                                      [                                                                  Kp                        ·                                                  (                                                      Pc                            -                            Pl                                                    )                                                                    -                      Vm                                        ]                                    ·                                      Iv                    /                    S                                                                                                          (                  Equation          ⁢                                          ⁢                      (            4            )                          )            
In FIG. 7, the integration process is performed based on the speed difference, to thus solve the problem of stationary difference occurring in the related art of FIG. 6.
Other references that disclose related art include Japanese Patent Laid-Open Publication Nos. 2001-309676 and 2000-347743.
In the '607 publication, as shown in FIG. 7, when k=0, the speed feedback value becomes Vm which is a speed detection value of the motor. In such a situation, it is possible to apply, to the proportional gain Pv and integral gain Iv of the speed loop, gain settings similar to that in the semi-close control. Therefore, with the increase in speed of the speed loop in recent years, it is now possible to realize control in which the speed difference of the motor is nearly zero. However, when the control target is a machine having a large lost motion including a loose ball screw, if the position loop gain Kp is set at a high value, low frequency vibration results. Thus, a high position loop gain Kp cannot be set. When k=1 in FIG. 7, the speed feedback value is Vl which is a speed detection value of the table. In this case, if the speed loop gain is set to a value similar to that in the semi-close control, because a feedback control is applied using the speed of the table which is a control target of a second order inertia, a high frequency vibration occurs. Thus, the speed loop gain cannot be set to a value similar to that in the semi-close control. In other words, when k is set at a large value, a high frequency vibration occurs in the speed loop, and, thus, the speed loop gain cannot be set at a high value and Kp cannot be set at a high value. In order to set a large value for Kp, it is necessary to set k to a small value. As a result, when a same speed loop gain as that for a machine of a semi-close control is set, the position loop gain Kp can only be set to ½–⅔ of the set value of a semi-close control.
That is, because the speed feedback value from the linear scale is small, the response by the movable portion is inferior, and, as a result, the position error of the table is only reduced by an amount approximately ½ of that as is the case when semi-close control is applied. When k is set to a suitable value within a range of 0–1 corresponding to characteristics of a machine, the speed of the table which is a control target of a second order inertial system and the speed of the motor which is a control target of a first order inertial system are controlled together. With such a configuration, when a gain Kv is set to the highest value, very small vibrations occurring in the position loop are reflected to the speed instruction and further amplified by the speed loop gain which is set at a high value, resulting in an oscillation of the machine.
In a machine tool, a machine having a same structure may or may not be provided with a linear scale. In other words, even with a single machine, there may be instances in which the machine is controlled in a full-close manner and instances in which the same machine is controlled in a semi-close manner. In the related art of the '550 publication shown in FIG. 6 and the related art of the '607 publication shown in FIG. 7, it is not possible to set the same value for the speed loop in the full-close control and in the semi-close control. Therefore, even with the same machine, the speed loop gains must be set separately for full-close control and semi-close control.